Augmented location determination using sensor data

ABSTRACT

Systems, methods and computer-readable medium are provided using on-board sensor data of a tracking device in addition to satellite signals to improve the determination of the location of a tracking device. In one aspect, a method includes detecting, at a server, presence of a tracking device in a high error zone; determining if geographical coordinates of a current location of the tracking device in the high error zone are within a threshold of registered geographical coordinates of the current location; activating at least one sensor on-board the tracking device when the geographical coordinates are not within the threshold; receiving displacement information of the tracking device from the tracking device; determining an updated location of the tracking device based on the current location and the displacement information; and providing an arrival alert to a destination toward which the tracking device is traveling based on the updated location.

CROSS REFERENCE TO RELATED APPLICATIONS

This Application claims priority to U.S. Provisional Application62/666,416 filed on May 3, 2018 and U.S. Provisional Application62/666,451 filed on May 3, 2018, the entire content of both of which areincorporated herein by reference.

TECHNICAL FIELD

The present technology pertains to systems and methods for improvinglocation determination of tracking devices, and more specificallypertains to using on-board sensor data of the tracking device inaddition to satellite signals to improve the determination of thelocation of a tracking device.

BACKGROUND

Current services that provide arrival alerts often rely on receivingcontinuous location updates from a moving target (e.g., a vehicle) inorder determine, as accurately as possible, a timing of alerting thedestination (e.g., a store) of the moving target's arrival at thedestination. For example, when a user is driving to a location of astore to pick up an ordered item, the system's objective is to providean accurate advance alert (arrival alert) to the operator of the storeso that the operator can ensure the user's order is ready for pick whenthe user arrives.

The requirement for such continuous transmission of location updatesfrom a tracking device (e.g., a mobile device) associated with themoving target to the server, requires the server to obtain accuratelocation information (e.g., accurate reading of global positioningsystem (GPS) signals from the tracking device). However, there are manygeographical areas in which a tracking device may not be able to obtainaccurate GPS signals due to the existence of many structures andbuildings in the surrounding areas of the tracking device (e.g., in adowntown area, under a bridge, in a secure building, in a mall, etc.).This can adversely affect the reading provided by the tracking device tothe server, which can in turn adversely affect the timing of sending thearrival alert to the destination.

SUMMARY

Example embodiments are provided for using on-board sensor data of atracking device in addition to satellite signals to improve thedetermination of the location of a tracking device.

In one aspect, a method includes detecting, at a server, presence of atracking device in a high error zone; determining if geographicalcoordinates of a current location of the tracking device in the higherror zone are within a threshold of registered geographical coordinatesof the current location; activating at least one sensor on-board thetracking device when the geographical coordinates are not within thethreshold; receiving displacement information of the tracking devicefrom the tracking device; determining an updated location of thetracking device based on the current location and the displacementinformation; and providing an arrival alert to a destination towardwhich the tracking device is traveling based on the updated location.

In one aspect, a server includes memory having computer-readableinstructions stored therein; and one or more processors. The one or moreprocessors are configured to execute the computer-readable instructionsto detect presence of a tracking device in a high error zone; determineif geographical coordinates of a current location of the tracking devicein the high error zone are within a threshold of registered geographicalcoordinates of the current location; activate at least one sensoron-board the tracking device when the geographical coordinates are notwithin the threshold; receive displacement information of the trackingdevice from the tracking device; determine an updated location of thetracking device based on the current location and the displacementinformation; and provide an arrival alert to a destination toward whichthe tracking device is traveling based on the updated location.

In one aspect, one or more non-transitory computer-readable medium havecomputer-readable instructions stored thereon, which when executed byone or more processors, cause the one or more processors to detectpresence of a tracking device in a high error zone; determine ifgeographical coordinates of a current location of the tracking device inthe high error zone are within a threshold of registered geographicalcoordinates of the current location; activate at least one sensoron-board the tracking device when the geographical coordinates are notwithin the threshold; receive displacement information of the trackingdevice from the tracking device; determine an updated location of thetracking device based on the current location and the displacementinformation; and provide an arrival alert to a destination toward whichthe tracking device is traveling based on the updated location.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-recited and other advantages and features of the presenttechnology will become apparent by reference to specific implementationsillustrated in the appended drawings. A person of ordinary skill in theart will understand that these drawings only show some examples of thepresent technology and would not limit the scope of the presenttechnology to these examples. Furthermore, the skilled artisan willappreciate the principles of the present technology as described andexplained with additional specificity and detail through the use of theaccompanying drawings in which:

FIG. 1 shows an example system in accordance with one aspect of thepresent disclosure;

FIG. 2 shows an example system in accordance with one aspect of thepresent disclosure;

FIG. 3 illustrates an example method of creating destination specificmodels in accordance with one aspect of the present disclosure;

FIG. 4 illustrates an example method of location determination in higherror zones, in accordance with one aspect of the present disclosure;and

FIG. 5 shows an example of a system for implementing the presenttechnology in accordance one aspect of the present disclosure.

DETAILED DESCRIPTION

Various examples of the present technology are discussed in detailbelow. While specific implementations are discussed, it should beunderstood that this is done for illustration purposes only. A personskilled in the relevant art will recognize that other components andconfigurations may be used without parting from the spirit and scope ofthe present technology.

The disclosed technology addresses the need in the art to obtainaccurate readings of a location of a tracking device using sensor data,where GPS signals alone may not be sufficiently accurate. This improvedlocation determination technique can in turn improve the accuracy ofarrival alerts provided by a service provider to a destination (e.g., amerchant) informing the destination of the impending arrival of a movingtarget (e.g., a user or customer) at the destination.

The disclosure begins with a description of several example systems inwhich the concepts described herein can be implemented.

FIG. 1 illustrates an example system in accordance with one aspect ofthe present disclosure. As illustrated in FIG. 1, system 100 includes auser 102 associated with a tracking device 104 (user device 104 orcustomer device 104). While not shown in FIG. 1, user 102 and trackingdevice 104 can be associated with a moving object including, but notlimited to, a car, a bus, a bike, a public transportation vehicle, etc.The tracking device 104 can be any known or to be developed electronicdevice capable of tracking a movement of the user 102 (and theassociated moving object) and communication the same with a server 112over a wired and/or wireless communication platform such as over acellular network or a WiFi connection. Examples of tracking device 104include, but are not limited to, a cellular phone, a personal digitalassistant (PDA), a laptop, a tablet, a wristband tracking object, etc.In one example, tracking device 104 has location service 105. Locationservice 105 can be any known or to be developed built-in sensor, deviceand/or location determining component such as a global positioningsystem (GPS) device capable of recording geographical coordinates (e.g.,latitude and longitude) of tracking device 104 at any given point intime.

While not shown in FIG. 1, tracking device 104, server 112 and any othercomponent of system 100 have other components for enabling communicationwith other components such as transceivers.

The system 100 further includes a destination 106. Destination 106 canbe a target location that is to receive arrival alerts from server 112informing an operator thereof of the timing of user 102's arrival atdestination 106. For example, destination 106 can be a brick-and-mortarstore, from which user 102 has ordered item(s) for purchase and is enroute to pick up the order. Other examples of destination 106 include,but are not limited to, a restaurant, a department store, other types ofservice providers such as dry cleaning services, a library, etc.Therefore, it is important for server 112 to provide an arrival alert todestination 106 at a threshold time ahead of the arrival of user 102(e.g., 8 minutes prior to user's arrival at destination 106) to ensurethat the ordered item(s) is/are ready when user 102 arrives atdestination 106. Therefore, the arrival alert needs to be as accurate aspossible to avoid or reduce inconveniences (e.g., waiting for theordered item(s) to be prepared for a period of time after arrival)experienced by user 102 and/or an operator at destination 106.

Destination 106 can have an operator 108 associated therewith such as anemployee. Furthermore, destination 106 can have a computing device 110with which operator 108 interacts to receive arrival alerts, send andreceive identifying information to server 112 and/or track device 104,confirm/cancel/adjust orders, etc. Computing device 110 can be any knownor to be developed device that is used by destination 106 and is capableof communicating with server 112 over a wired and/or wireless connectionsuch as a WiFi connection. Examples of computing device 110 include, butare not limited to, a tablet, a stationary computer device, a mobiledevice, any other known or to be developed Point of Sale (POS) devices,etc.

System 100 also includes server 112. Server 112 can have one or moreprocessors such as processor 114 capable of implementing one or moresets of computer-readable instructions stored in one or more memoriessuch as memory 116. Execution of any one or more of these sets ofinstructions enable server 112 to implement functionalities of methodsdescribed below with reference to FIGS. 3-5. These functionalitiesinclude, but are not limited to, building destination specific modelsusing machine learning, which can then be used to provide arrivalprediction services, determining smart signaling for location receivinglocation updates, etc.

As shown in FIG. 1, server 112 can also have database 118 (can also bereferred to as past trips database 118). Data stored in database 118, aswill be described below, will be used by machine learning algorithmsimplemented by server 112 to build destination specific models andperform arrival prediction services.

System 100 can also include routing engine 120. Routing engine 120 canbe any conventional routing engine such as those commonly associatedwith mapping applications. Such routing engines may take into accountdistance to a destination and speed limits and in some cases currenttraffic, weather and time of day conditions in providing preliminaryarrival times to server 112, which will be used by server 112 and logicsimplemented thereon to refine, revise and provide arrival alerts todestination 106. Furthermore, routing engine 120 may or may not accountfor other location specific factors such as most likely routes to thedestination, likely stops along the way and any other learned factorsfor generating destination specific models for destinations at server112.

Server 112 and routine engine 120 can be co-located physically or beconfigured to communicate over wired and/or wireless networks.Furthermore, each identified component of system 100 can communicatewith other components of system 100 and/or any other external componentusing currently known or to be developed cellular and/or wirelesscommunication technologies and platforms.

FIG. 2 illustrates an example system in accordance with one aspect ofthe present disclosure. System 200 of FIG. 2 is the same as system 100of FIG. 1 except that instead of having user 102 travel to destination106 to pick up item(s)/service(s) ordered as shown in FIG. 1, adestination such as destination 106 utilizes a delivery service (e.g.that of a driver) to deliver user 102's order(s) to user 102. Therefore,components of system 200 that have the same numerical reference as thosein FIG. 1 will not be further described for sake of brevity.

In system 200 shown in FIG. 2, instead of destination 106 and itscorresponding components, a driver 206 having an associated trackingdevice 208 is illustrated. In the context of FIG. 2, driver 206 andassociated tracking device 208 is moving toward user 102 (similar touser 102 and tracking device 104 in FIG. 1) while user 102 is stationary(similar to destination 106 in FIG. 1). Accordingly, in the context ofFIG. 2, an arrival alert is provided to user 102 informing user 102 ofarrival of driver 206. Therefore, various types of calculations forlocation determination as described in this application, are performedfor determining location of tracking device 208 and estimating itsarrival at user 102.

Driver 206 and tracking device 208 can be associated with a movingobject such as a vehicle operated by driver 206. Tracking device 208 canbe any known or to be developed electronic device capable of tracking amovement of the driver 206 (and the associated moving object) andcommunicate the same with server 112 over a wired and/or wirelesscommunication platform such as over a cellular network or a WiFiconnection. Examples of tracking device 208 include, but are not limitedto, a cellular phone, a personal digital assistant (PDA), a laptop, atablet, a wristband tracking object, etc. Location service 210 oftracking device 208 can be the same as location service 105 of trackingdevice 104 (identified as customer device 104 in FIG. 2) described abovewith reference to FIG. 1.

While in FIGS. 1 and 2 various components are illustrated and described,inventive concepts are not limited thereto. For example, the number ofusers, devices, destinations, servers, etc., are not limited to thosedescribed and can be more or less. Furthermore, both systems 100 and 200can have additional components, architecture and/or functionalitiesassociated therewith that are ordinary and/or necessary for properoperations thereof and thus are within the scope of the presentdisclosure.

As briefly mentioned above, server 112 is tasked with tracking a movingobject associated with user 102 in order to provide an alert todestination 106 at a threshold time ahead of user 102's arrival atdestination 106, so that operator 108 at destination 106 can prepare andready order(s) for user 102 to pick up when he or she arrives atdestination 106. Such threshold time can be a configurable parameterdetermined based on various factors such as operator 108 feedback, user102 feedback, automatic system determination based on prior trips todestination 106, etc. For example, operator 108 can request that server112 provide operator 108 with an alert when user 102 is 8 minutes awayfrom arriving at destination 106 for picking up his or her order(s).Therefore, server 112 needs to have precise information on user'slocation in order to provide, as accurately as possible, an arrivalalert to operator 108 at destination 106 when user 102 is 8 minutes awayfrom reaching destination 106.

Server 112 implements various techniques to improve the accuracy of thearrival alert provided to destination 106. For example, server 112applies machine learning to various statistical data to createdestination specific model(s) for destination 106. Various statisticdata can include, but is not limited to, past completed trips of usersto destination 106, past completed trips of user 102, trafficconditions, modes of transportation, types of moving objects associatedwith user 102 (and/or driver 206 in FIG. 2), weather conditions, timesof days, events taking place en route to destination 106 or atdestination 106, speed of the moving object, any construction, roadclosures and improvement, etc. The statistical data can be stored indatabase 118.

For example, a particular brick-and-mortar store maybe located in adowntown area where traffic conditions vary greatly depending on time ofday. Server 112 takes this information into consideration to build adestination specific model for the brick-and-mortar store located in thedowntown area. During prediction of arrival of user 102 at the downtownlocation of the brick-and-mortar store and depending on the time of day,server 112 can augment its prediction and improve its arrival predictionusing the corresponding destination specific model.

FIG. 3 illustrates an example method of creating destination specificmodels in accordance with one aspect of the present disclosure. FIG. 3will be described with reference to FIG. 1. However, the conceptsdescribed are equally applicable to the system of FIG. 2 as well. Themethod illustrated in FIG. 3 begins after one or more notifications havebeen provided to destination computing device 110 regarding an arrivalprediction of user 102 at destination 106 to pick up order(s) (or one ormore trips to destination 106 have been completed). Server 112 can storea collection of data in database 118. The data can be any one or more ofstatistical data examples provided above. In addition, server 112 canstore information regarding the quality of past notifications and anidentifier of the past notifications. For example, every time server 112has provided an arrival alert to destination 106 indicating that user102 will arrive in 8 minutes, server 112 compares this estimated arrivaltime to an actual time it took user 102 to arrive at destination 106.For example, while server 112 predicted, at time T0, that user 102 willarrive at destination 106 in 8 minutes, in reality, it may take user 1026 minutes from T0 to arrive at destination 106. This indicates aprediction error of 25%. Server 112 stores this prediction error indatabase 118. During the next round of prediction and in providing thearrival alert, server 112 adjusts its prediction by 25% before providingthe arrival alert (e.g., in the particular example described above,instead of providing the arrival alert at T0, server 112 now providesthe arrival alert at T1 which is 2 minutes earlier than T0).

At S302, server 112 queries computing device 110 of destination 106 forrating a quality of a recently provided arrival alert. Operator 108operating destination computing device 110 can respond to the query.Upon receiving the response, server 112 stores the rating at S306. Inaddition to, simultaneous with or instead of querying computing device110 for rating, at S304, server 112 can calculate a rating or predictionerror regarding the arrival alert, as described above. Similarly, thecalculated rating is received at S306.

At S308, server 112 can record the received rating(s), per S302 andS304, in database 118 in association with an identification (ID) of thenotification. The ID can be an identification of a particulartransaction between user 102 and a merchant at destination 106, can bean identification associated with user 102, can be an identificationassociated with destination 106 or any combination thereof.

Server 112 can also store in database 118, information regarding a routetaken by user 102 in connection with a recently completed trip todestination 106, and any other data pertinent to the trip that resultedin the notification. The route taken by user 102 can be learned fromdata reported by location service 105 to server 112 while user 102 andassociated computing device 104 were traveling to destination 106. Insome examples, from this route information, server 112 can determine ifuser 102 made any stops while in route to destination 106. Server 112can also record a time of day, day of week, and date associated with thenotification in database 118. Server 112 can aggregate the above datafor trips by many users.

At S310, server 112 applies machine learning algorithm(s) to thehistorical data specific to destination 106 stored in database 118. AtS312, server 112 generates destination specific model for destination106 based on the machine learning algorithm(s) applied to stored data atS310. In one example, destination specific model may be created ortrained by analyzing factors associated with notifications that wereconsidered of good quality and factors associated with notificationsthat were considered of poor quality. Since the destination specificmodel is generated through machine learning, some dimensions ofdestination specific model may not have any semantic meaning while somedimensions may have a semantic significance. For example, thosedimensions having a semantic meaning can include likelihood that a userwill make other stops along the route, likelihood that a user willencounter traffic along the route, the most likely routes to thedestination, etc.

In some examples, machine learning may initially be trained on all datain database 118 regardless of destination to result in a locationnon-specific model. In such examples, destination specific model may bethe result of tuning the location non-specific model for factorsrelevant to the specific destination 106.

As can be seen from the above description, server 112 relies on locationupdates received from tracking device 104 in order to determine currentlocation of user 102, which is then used to determining/estimate thetiming of sending the arrival alert to computing device 110 ofdestination 106.

The location updates received from tracking device 104 can be GPSsignals (satellite signals) readings obtained by a GPS tracking deviceembedded in tracking device 104.

Server 112, by relying on data obtained from external sources such as apublic database, may have a record of precise geographical coordinatesof any given geographical location (latitude and longitude values). Suchprecise geographical coordinates may be referred to as registeredgeographical coordinates or simply registered coordinates of a givengeographical location. Therefore, every time server 112 receives a GPSsignal reading from tracking devices, server 112 can compare the GPSreading received, which includes latitude and longitude values of thecorresponding geographical location, with the registered geographicalcoordinates of the same location. If the difference between any two ofthe received and registered latitude and longitude values two are withina threshold (e.g., less than 5 meters, 10 meters, within a margin oferror of less than 5%, 10%, etc.), the server 112 would then considerthe received coordinates as “precise”.

Based on the above and over time, server 112 can build up a database ofgeographical areas in which average error of received GPS signalsreadings from tracking devices are not “precise”. These geographicalareas may be stored at server 112 and may be referred to as high errorzones. Thereafter, whenever a tracking device is located within a higherror zone, and as will be discussed below, any sparse “precise” GPSreadings received from said tracking device may be used as a referencepoint after which determination of movement and hence the location ofthe tracking device may be augmented using on-board sensors anddisplacement/location calculations (information) of the tracking device.This can improve the location updates of the tracking device received atthe server 112, which in turn improves the timing of the arrival alertthat the server 112 is to provide to the destination 106, for example.

Augmenting GPS signal readings with data from on-board sensors of atracking device not only provides the above described advantage, it canalso be used to send more targeted content to the tracking device aswell as track user's movement over time to determine content conversionrates, etc.

FIG. 4 illustrates an example method of location determination in higherror zones, in accordance with one aspect of the present disclosure.FIG. 4 will be described from the perspective of server 112 and withreference to FIGS. 1-3. However, it is understood by those skill in theart that one or more processors such as processor 114 of server 112executes computer readable instructions stored on or more memories suchas memory 116 to implement the functionalities described below.

At S400, server 112 detects that tracking device 104 is in a high errorzone. In one example, server 112 detects the presence of tracking device104 in the high error zone based determining that the latest locationupdate (or average of a predetermined number of location updatesrecently received from tracking device 104) corresponds to one or moregeographical areas identified as high error zones by server 112, asdescribed above.

At S402, server 112 receives a location update (e.g., a GPS signalreading) from tracking device 104 that may be indicative of a currentlocation (geographical coordinates) of tracking device 104.

At S404, server 112 determines if the location update (GPS signal)received from tracking device 104 at S402, after detecting the presenceof the tracking device 104 in the high error zone, is accurate. In oneexample, this accuracy determination is based on comparing thecoordinates of a current location of the tracking device indicated inthe received location update to registered coordinates of the samelocation at server 112. If the received coordinates (either longitudevalue or the latitude value or combination of both) are within athreshold of the registered coordinates (e.g., having an error that isless than a threshold such as 1%, 2%, 5% or a difference of less than 5meters/miles, 10 meters/miles, etc.), then server 112 determines thatthe location update is accurate.

If at S404, server 112 determines that the recently received locationupdate is accurate, at S406, server 112 updates its record of currentlocation of tracking device 104 using the received current location andregisters (stores) the current location as the “latest precise location”or the “latest reference point”. This may be followed by server 112using the updated location to track user 102 and tracking device 104 forpurposes of determining the timing of the arrival alert to be sent todestination 106. Thereafter, the process reverts back to S402.

Thereafter, at S408, server 112 determines whether to provide an arrivalalert to destination 106 or not. This determination is based on whetherthe determined location of tracking device (based on the “latestreference point” determined at S404) and the associated remaining timecoincides with an arrival threshold (e.g., the 8^(th) minute markexample described above) at which an arrival alert is to be provided todestination 106. In other words, this determination translates intodetermining if the current location of tracking device 104 indicatesthat tracking device 104 and user 102 are at the 8 minute mark (examplearrival threshold) from destination 106 such that server 112 shouldinform destination 106 by providing the arrival alert.

If at S408, server 112 determines that the arrival alert is to beprovided, then at S410, server 112 sends the arrival alert todestination 106 (e.g., to computing device 110 associated withdestination 106) using any known or to be developed communicationscheme.

However, if at S408, server 112 determines that the arrival alert is notto be provided, then the process reverts back to S402 and S402, S406,S408, S410, S412, S414 and S416 are repeated, as appropriate andapplicable.

Referring back to S404, if at S404, server 112 determines that thereceived location update is not accurate, then at S412, server 112 sendscommands to tracking device 104 to turn on (activate) its on-boardsensors to be used for tracking movement of the tracking device 104.Examples of such on-board sensors include, but are not limited to,gyroscope, accelerometer, magnetometer, etc. In response to thecommands, tracking device 104 enables said sensors and can collectmovement and location data to perform calculations on-board in order todetermine the amount of displacement of tracking device 104 sinceactivation of the sensors. These calculations can be done according toany known or to be developed method.

At S414 and at the time of providing next location update by trackingdevice 104, server 112 also receives the calculations performed on boardtracking device 104 (may be referred to as displacement information)

At S416, server 112 retrieves the “latest reference point” (e.g., storedat S406 described above) and updates the same with the displacementinformation received at S410. In one example, if the process of FIG. 4,has not reached S406, by the time it reaches S416, then server 112 usesthe location update of S402 instead of the “latest reference point ofS406 and updates the location update from S402 with the displacementinformation received at S410.

In one example, the updating may also be based on the destinationspecific model for destination 106 that sever 112 may have generated fordestination 106 per the process of FIG. 3. For example, the specificdestination model for destination 106 may include information oncorrelation between traffic (e.g., average speed and time) on a currentroute of which user 102 and tracking device 104 are travelling todestination 106 and time of day. Therefore, if a particular time period(e.g., afternoon rush hour between 4PM to 6PM) is associated with a 10%slower traffic on the current route and the current time (as the user102 is traveling to destination 106) falls within such time period, thenserver 112 may update the “latest reference point” with the displacementinformation and/or an additional factor of 10% due to the relativelyslower traffic.

Thereafter, the process reverts back to S408 and server 112 maycontinuously repeat steps of FIG. 4 as described above. In one example,every time a new and “accurate” location information is received, server112 can updates the “latest reference point” and can thereafter updatethe reference with displacement data calculated on-board the trackingdevice 104.

By implementing the method of FIG. 4, deficiencies in accuracies of GPSsignals in high error zones are remedied to obtain better and moreaccurate location updates from tracking device 104 by augmenting GPSsignal readings with on-board displacement calculations.

In another example embodiment, a high error zone may not necessarily bein a downtown area or an area with structures that block GPS signals.Instead a high error zone may be a geographical area (may be an openfield or a remote region), where signal reception and strength of GPSsignals are weak or less than a threshold amount of strength.Accordingly, the process of FIG. 4 is equally applicable to such remoteor open field example of a high error zone.

FIG. 5 shows an example of a system for implementing the presenttechnology in accordance one aspect of the present disclosure. FIG. 5illustrates computing system 500 in which the components of the systemare in communication with each other using connection 505. Connection505 can be a physical connection via a bus, or a direct connection intoprocessor 510, such as in a chipset architecture. Connection 505 canalso be a virtual connection, networked connection, or logicalconnection.

In some examples, computing system 500 is a distributed system in whichthe functions described in this disclosure can be distributed within adatacenter, multiple datacenters, a peer network, etc. In someembodiments, one or more of the described system components representsmany such components each performing some or all of the function forwhich the component is described. In some embodiments, the componentscan be physical or virtual devices.

Example system 500 includes at least one processing unit (CPU orprocessor) 510 and connection 505 that couples various system componentsincluding system memory 515, such as read only memory (ROM) and randomaccess memory (RAM) to processor 510. Computing system 500 can include acache 512 of high-speed memory connected directly with, in closeproximity to, or integrated as part of processor 510.

Processor 510 can include any general purpose processor and a hardwareservice or software service, such as services 532, 534, and 536 storedin storage device 530, configured to control processor 510 as well as aspecial-purpose processor where software instructions are incorporatedinto the actual processor design. Processor 510 may essentially be acompletely self-contained computing system, containing multiple cores orprocessors, a bus, memory controller, cache, etc. A multi-core processormay be symmetric or asymmetric.

To enable user interaction, computing system 500 includes an inputdevice 545, which can represent any number of input mechanisms, such asa microphone for speech, a touch-sensitive screen for gesture orgraphical input, keyboard, mouse, motion input, speech, etc. Computingsystem 500 can also include output device 535, which can be one or moreof a number of output mechanisms known to those of skill in the art. Insome instances, multimodal systems can enable a user to provide multipletypes of input/output to communicate with computing system 500.Computing system 500 can include communications interface 540, which cangenerally govern and manage the user input and system output. There isno restriction on operating on any particular hardware arrangement andtherefore the basic features here may easily be substituted for improvedhardware or firmware arrangements as they are developed.

Storage device 530 can be a non-volatile memory device and can be a harddisk or other types of computer readable media which can store data thatare accessible by a computer, such as magnetic cassettes, flash memorycards, solid state memory devices, digital versatile disks, cartridges,random access memories (RAMs), read only memory (ROM), and/or somecombination of these devices.

The storage device 530 can include software services, servers, services,etc., that when the code that defines such software is executed by theprocessor 510, it causes the system to perform a function. In someembodiments, a hardware service that performs a particular function caninclude the software component stored in a computer-readable medium inconnection with the necessary hardware components, such as processor510, connection 505, output device 535, etc., to carry out the function.

For clarity of explanation, in some instances the present technology maybe presented as including individual functional blocks includingfunctional blocks comprising devices, device components, steps orroutines in a method embodied in software, or combinations of hardwareand software.

Any of the steps, operations, functions, or processes described hereinmay be performed or implemented by a combination of hardware andsoftware services or services, alone or in combination with otherdevices. In some embodiments, a service can be software that resides inmemory of a client device and/or one or more servers of a contentmanagement system and perform one or more functions when a processorexecutes the software associated with the service. In some embodiments,a service is a program, or a collection of programs that carry out aspecific function. In some embodiments, a service can be considered aserver. The memory can be a non-transitory computer-readable medium.

In some embodiments the computer-readable storage devices, mediums, andmemories can include a cable or wireless signal containing a bit streamand the like. However, when mentioned, non-transitory computer-readablestorage media expressly exclude media such as energy, carrier signals,electromagnetic waves, and signals per se.

Methods according to the above-described examples can be implementedusing computer-executable instructions that are stored or otherwiseavailable from computer readable media. Such instructions can comprise,for example, instructions and data which cause or otherwise configure ageneral purpose computer, special purpose computer, or special purposeprocessing device to perform a certain function or group of functions.Portions of computer resources used can be accessible over a network.The computer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, firmware, orsource code. Examples of computer-readable media that may be used tostore instructions, information used, and/or information created duringmethods according to described examples include magnetic or opticaldisks, solid state memory devices, flash memory, USB devices providedwith non-volatile memory, networked storage devices, and so on.

Devices implementing methods according to these disclosures can comprisehardware, firmware and/or software, and can take any of a variety ofform factors. Typical examples of such form factors include servers,laptops, smart phones, small form factor personal computers, personaldigital assistants, and so on. Functionality described herein also canbe embodied in peripherals or add-in cards. Such functionality can alsobe implemented on a circuit board among different chips or differentprocesses executing in a single device, by way of further example.

The instructions, media for conveying such instructions, computingresources for executing them, and other structures for supporting suchcomputing resources are means for providing the functions described inthese disclosures. Although a variety of examples and other informationwas used to explain aspects within the scope of the appended claims, nolimitation of the claims should be implied based on particular featuresor arrangements in such examples, as one of ordinary skill would be ableto use these examples to derive a wide variety of implementations.Further and although some subject matter may have been described inlanguage specific to examples of structural features and/or methodsteps, it is to be understood that the subject matter defined in theappended claims is not necessarily limited to these described featuresor acts. For example, such functionality can be distributed differentlyor performed in components other than those identified herein. Rather,the described features and steps are disclosed as examples of componentsof systems and methods within the scope of the appended claims.

What is claimed is:
 1. A computer-implemented method for locationdetermination, the method comprising: detecting, at a server, presenceof a tracking device in a high error zone; determining if geographicalcoordinates of a current location of the tracking device in the higherror zone are within a threshold of registered geographical coordinatesof the current location; activating at least one sensor on-board thetracking device when the geographical coordinates are not within thethreshold; receiving displacement information of the tracking devicefrom the tracking device; determining an updated location of thetracking device based on the current location and the displacementinformation; and providing an arrival alert to a destination towardwhich the tracking device is traveling based on the updated location. 2.The computer-implemented method of claim 1, wherein the high error zoneis an area in which an average error in geographical coordinates ofreported locations within the area is greater than a threshold.
 3. Thecomputer-implemented method of claim 1, wherein the at least one sensoris one or more of an accelerometer, a gyroscope or a magnetometer of thetracking device.
 4. The computer-implemented method of claim 1, whereinthe geographical coordinates include latitude and longitude of thecurrent location; and the registered geographical coordinates of thecurrent location include registered latitude and registered longitude ofthe current location.
 5. The computer-implemented method of claim 4,wherein determining if the geographical coordinates of a currentlocation of the tracking device are within a threshold of registeredgeographical coordinates of the current location, comprises at least oneof: comparing the latitude to a corresponding registered latitude of thecurrent location; comparing the longitude to a corresponding registeredlongitude of the current location; or comparing both the latitude andthe longitude to the corresponding registered latitude and longitude ofthe current location.
 6. The computer-implemented method of claim 1,wherein providing the arrival alert includes providing the arrival alertif the updated location of the tracking device indicates that aremaining time for the tracking device to reach the destination is equalto a threshold time.
 7. A server comprising: memory havingcomputer-readable instructions stored therein; and one or moreprocessors configured to execute the computer-readable instructions to:detect presence of a tracking device in a high error zone; determine ifgeographical coordinates of a current location of the tracking device inthe high error zone are within a threshold of registered geographicalcoordinates of the current location; activate at least one sensoron-board the tracking device when the geographical coordinates are notwithin the threshold; receive displacement information of the trackingdevice from the tracking device; determine an updated location of thetracking device based on the current location and the displacementinformation; and provide an arrival alert to a destination toward whichthe tracking device is traveling based on the updated location.
 8. Theserver of claim 7, wherein prior to executing the computer-readableinstructions to determine that the geographical coordinates are notwithin the threshold, the one or more processors are configured toexecute the computer-readable instructions to: determine a latestreference point based on previous geographical coordinates of thetracking device being within the threshold, and determine the updatedlocation based on the latest reference point and the displacementinformation.
 9. The server of claim 7, wherein the high error zone is anarea in which an average error in geographical coordinates of reportedlocations within the area is greater than a threshold.
 10. The server ofclaim 7, wherein the at least one sensor is one or more of anaccelerometer, a gyroscope or a magnetometer of the tracking device. 11.The server of claim 7, wherein the geographical coordinates includelatitude and longitude of the current location; and the registeredgeographical coordinates of the current location include registeredlatitude and registered longitude of the current location.
 12. Theserver of claim 11, wherein the instructions to determine if thegeographical coordinates of a current location of the tracking deviceare within a threshold of registered geographical coordinates of thecurrent location, comprises instructions to at least one of: compare thelatitude to a corresponding registered latitude of the current location;compare the longitude to a corresponding registered longitude of thecurrent location; or compare both the latitude and the longitude to thecorresponding registered latitude and longitude of the current location.13. The server of claim 7, wherein the one or more processors areconfigured to execute the computer-readable instruction to provide thearrival alert if the updated location of the tracking device indicatesthat a remaining time for the tracking device to reach the destinationis equal to a threshold time.
 14. One or more non-transitorycomputer-readable medium having computer-readable instructions storedtherein, which when executed by one or more processors, cause the one ormore processors to: detect presence of a tracking device in a high errorzone; determine if geographical coordinates of a current location of thetracking device in the high error zone are within a threshold ofregistered geographical coordinates of the current location; activate atleast one sensor on-board the tracking device when the geographicalcoordinates are not within the threshold; receive displacementinformation of the tracking device from the tracking device; determinean updated location of the tracking device based on the current locationand the displacement information; and provide an arrival alert to adestination toward which the tracking device is traveling based on theupdated location.
 15. The one or more non-transitory computer-readablemedium of claim 14, wherein prior to executing the computer-readableinstructions to determine that the geographical coordinates are notwithin the threshold, the execution of the computer-readable mediumcause the one or more processors to: determine a latest reference pointbased on previous geographical coordinates of the tracking device beingwithin the threshold, and determine the updated location based on thelatest reference point and the displacement information.
 16. The one ormore non-transitory computer-readable medium of claim 14, wherein thehigh error zone is an area in which an average error in geographicalcoordinates of reported locations within the area is greater than athreshold.
 17. The one or more non-transitory computer-readable mediumof claim 14, wherein the at least one sensor is one or more of anaccelerometer, a gyroscope or a magnetometer of the tracking device. 18.The one or more non-transitory computer-readable medium of claim 14,wherein the geographical coordinates include latitude and longitude ofthe current location; and the registered geographical coordinates of thecurrent location include registered latitude and registered longitude ofthe current location.
 19. The one or more non-transitorycomputer-readable medium of claim 18, wherein the computer-readableinstructions to determine if the geographical coordinates of a currentlocation of the tracking device are within a threshold of registeredgeographical coordinates of the current location, comprisecomputer-readable instructions to at least one of: compare the latitudeto a corresponding registered latitude of the current location; comparethe longitude to a corresponding registered longitude of the currentlocation; or compare both the latitude and the longitude to thecorresponding registered latitude and longitude of the current location.20. The one or more non-transitory computer-readable medium of claim 18,wherein the execution of the computer-readable instructions by the oneor more processors, cause the one or more processors to provide thearrival alert if the updated location of the tracking device indicatesthat a remaining time for the tracking device to reach the destinationis equal to a threshold time.